<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=no">
  <meta name="description" content="API docs for the addOnExitListener method from the Isolate class, for the Dart programming language.">
  <title>addOnExitListener method - Isolate class - dart:isolate library - Dart API</title>
  <!-- required because all the links are pseudo-absolute -->
  <base href="../..">

  <link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:500,400i,400,300|Source+Sans+Pro:400,300,700" rel="stylesheet">
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <link rel="stylesheet" href="static-assets/github.css">
  <link rel="stylesheet" href="static-assets/styles.css">
  <link rel="icon" href="static-assets/favicon.png">
  
</head>

<body>

<div id="overlay-under-drawer"></div>

<header id="title">
  <button id="sidenav-left-toggle" type="button">&nbsp;</button>
  <ol class="breadcrumbs gt-separated dark hidden-xs">
    <li><a href="index.html">shake</a></li>
    <li><a href="dart-isolate/dart-isolate-library.html">dart:isolate</a></li>
    <li><a href="dart-isolate/Isolate-class.html">Isolate</a></li>
    <li class="self-crumb">addOnExitListener method</li>
  </ol>
  <div class="self-name">addOnExitListener</div>
  <form class="search navbar-right" role="search">
    <input type="text" id="search-box" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
  </form>
</header>

<main>

  <div id="dartdoc-sidebar-left" class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
    <header id="header-search-sidebar" class="hidden-l">
      <form class="search-sidebar" role="search">
        <input type="text" id="search-sidebar" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
      </form>
    </header>
    
    <ol class="breadcrumbs gt-separated dark hidden-l" id="sidebar-nav">
      <li><a href="index.html">shake</a></li>
      <li><a href="dart-isolate/dart-isolate-library.html">dart:isolate</a></li>
      <li><a href="dart-isolate/Isolate-class.html">Isolate</a></li>
      <li class="self-crumb">addOnExitListener method</li>
    </ol>
    
    <h5>Isolate class</h5>
    <ol>
      <li class="section-title"><a href="dart-isolate/Isolate-class.html#constructors">Constructors</a></li>
      <li><a href="dart-isolate/Isolate/Isolate.html">Isolate</a></li>
    
      <li class="section-title">
        <a href="dart-isolate/Isolate-class.html#instance-properties">Properties</a>
      </li>
      <li><a href="dart-isolate/Isolate/controlPort.html">controlPort</a></li>
      <li><a href="dart-isolate/Isolate/errors.html">errors</a></li>
      <li><a href="dart-isolate/Isolate/pauseCapability.html">pauseCapability</a></li>
      <li><a href="dart-isolate/Isolate/terminateCapability.html">terminateCapability</a></li>
      <li class="inherited"><a href="dart-core/Object/hashCode.html">hashCode</a></li>
      <li class="inherited"><a href="dart-core/Object/runtimeType.html">runtimeType</a></li>
    
      <li class="section-title"><a href="dart-isolate/Isolate-class.html#instance-methods">Methods</a></li>
      <li><a href="dart-isolate/Isolate/addErrorListener.html">addErrorListener</a></li>
      <li><a href="dart-isolate/Isolate/addOnExitListener.html">addOnExitListener</a></li>
      <li><a href="dart-isolate/Isolate/kill.html">kill</a></li>
      <li><a href="dart-isolate/Isolate/pause.html">pause</a></li>
      <li><a href="dart-isolate/Isolate/ping.html">ping</a></li>
      <li><a href="dart-isolate/Isolate/removeErrorListener.html">removeErrorListener</a></li>
      <li><a href="dart-isolate/Isolate/removeOnExitListener.html">removeOnExitListener</a></li>
      <li><a href="dart-isolate/Isolate/resume.html">resume</a></li>
      <li><a href="dart-isolate/Isolate/setErrorsFatal.html">setErrorsFatal</a></li>
      <li class="inherited"><a href="dart-core/Object/noSuchMethod.html">noSuchMethod</a></li>
      <li class="inherited"><a href="dart-core/Object/toString.html">toString</a></li>
    
      <li class="section-title inherited"><a href="dart-isolate/Isolate-class.html#operators">Operators</a></li>
      <li class="inherited"><a href="dart-core/Object/operator_equals.html">operator ==</a></li>
    
      <li class="section-title"><a href="dart-isolate/Isolate-class.html#static-properties">Static properties</a></li>
      <li><a href="dart-isolate/Isolate/current.html">current</a></li>
      <li><a href="dart-isolate/Isolate/packageConfig.html">packageConfig</a></li>
      <li><a class="deprecated" href="dart-isolate/Isolate/packageRoot.html">packageRoot</a></li>
    
      <li class="section-title"><a href="dart-isolate/Isolate-class.html#static-methods">Static methods</a></li>
      <li><a href="dart-isolate/Isolate/resolvePackageUri.html">resolvePackageUri</a></li>
      <li><a href="dart-isolate/Isolate/spawn.html">spawn</a></li>
      <li><a href="dart-isolate/Isolate/spawnUri.html">spawnUri</a></li>
    
      <li class="section-title"><a href="dart-isolate/Isolate-class.html#constants">Constants</a></li>
      <li><a href="dart-isolate/Isolate/beforeNextEvent-constant.html">beforeNextEvent</a></li>
      <li><a href="dart-isolate/Isolate/immediate-constant.html">immediate</a></li>
    </ol>
  </div><!--/.sidebar-offcanvas-->

  <div id="dartdoc-main-content" class="col-xs-12 col-sm-9 col-md-8 main-content">
      <div><h1>addOnExitListener method</h1></div>

    <section class="multi-line-signature">
      <span class="returntype">void</span>
            <span class="name ">addOnExitListener</span>
(<wbr><span class="parameter" id="addOnExitListener-param-responsePort"><span class="type-annotation"><a href="dart-isolate/SendPort-class.html">SendPort</a></span> <span class="parameter-name">responsePort</span>, {</span> <span class="parameter" id="addOnExitListener-param-response"><span class="type-annotation"><a href="dart-core/Object-class.html">Object</a></span> <span class="parameter-name">response</span></span> })
      
    </section>
    <section class="desc markdown">
      <p>Requests an exit message on <code>responsePort</code> when the isolate terminates.</p>
<p>The isolate will send <code>response</code> as a message on <code>responsePort</code> as the last
thing before it terminates. It will run no further code after the message
has been sent.</p>
<p>Adding the same port more than once will only cause it to receive one exit
message, using the last response value that was added,
and it only needs to be removed once using <a href="dart-isolate/Isolate/removeOnExitListener.html">removeOnExitListener</a>.</p>
<p>If the isolate has terminated before it can receive this request,
no exit message will be sent.</p>
<p>The <code>response</code> object must follow the same restrictions as enforced by
<a href="dart-isolate/SendPort/send.html">SendPort.send</a>.
It is recommended to only use simple values that can be sent to all
isolates, like <code>null</code>, booleans, numbers or strings.</p>
<p>Since isolates run concurrently, it's possible for it to exit before the
exit listener is established, and in that case no response will be
sent on <code>responsePort</code>.
To avoid this, either use the corresponding parameter to the spawn
function, or start the isolate paused, add the listener and
then resume the isolate.</p>
    </section>
    
    <section class="summary source-code" id="source">
      <h2><span>Implementation</span></h2>
      <pre class="language-dart"><code class="language-dart">&#47;* TODO(lrn): Can we do better? Can the system recognize this message and
 * send a reply if the receiving isolate is dead?
 *&#47;
external void addOnExitListener(SendPort responsePort, {Object response});</code></pre>
    </section>

  </div> <!-- /.main-content -->

  <div id="dartdoc-sidebar-right" class="col-xs-6 col-sm-6 col-md-2 sidebar sidebar-offcanvas-right">
  </div><!--/.sidebar-offcanvas-->

</main>

<footer>
  <span class="no-break">
    shake 0.1.0
  </span>

  
</footer>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="static-assets/typeahead.bundle.min.js"></script>
<script src="static-assets/highlight.pack.js"></script>
<script src="static-assets/URI.js"></script>
<script src="static-assets/script.js"></script>


</body>

</html>
